Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>NetWare Loadable Module</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/NetWare_Loadable_Module"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-NetWare_Loadable_Module rootpage-NetWare_Loadable_Module skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">NetWare Loadable Module</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<p class="mw-empty-elt">

</p>
<style data-mw-deduplicate="TemplateStyles:r1295905060">
/* start https://en.wikipedia.org/ */


.mw-parser-output .infobox-subbox{padding:0;border:none;margin:-3px;width:auto;min-width:100%;font-size:100%;clear:none;float:none;background-color:transparent}.mw-parser-output .infobox-3cols-child{margin:auto}.mw-parser-output .infobox .navbar{font-size:100%}@media screen{html.skin-theme-clientpref-night .mw-parser-output .infobox-full-data:not(.notheme)>div:not(.notheme)[style]{background:#1f1f23!important;color:#f8f9fa}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .infobox-full-data:not(.notheme)>div:not(.notheme)[style]{background:#1f1f23!important;color:#f8f9fa}}@media(min-width:640px){body.skin--responsive .mw-parser-output .infobox-table{display:table!important}body.skin--responsive .mw-parser-output .infobox-table>caption{display:table-caption!important}body.skin--responsive .mw-parser-output .infobox-table>tbody{display:table-row-group}body.skin--responsive .mw-parser-output .infobox-table th,body.skin--responsive .mw-parser-output .infobox-table td{padding-left:inherit;padding-right:inherit}}


/* end https://en.wikipedia.org/ */
</style><table class="infobox"><tbody><tr><th colspan="2" class="infobox-above" style="padding-bottom: 0.15em;">NetWare Loadable Module</th></tr><tr><th scope="row" class="infobox-label" style="line-height: 1.2; padding-right: 0.65em;"><a href="Filename_extension" title="Filename extension">Filename extension</a></th><td class="infobox-data" style="line-height: 1.35;"><style data-mw-deduplicate="TemplateStyles:r886049734">
/* start https://en.wikipedia.org/ */


.mw-parser-output .monospaced{font-family:monospace,monospace}


/* end https://en.wikipedia.org/ */
</style><div class="monospaced">
.nlm</div></td></tr><tr><th scope="row" class="infobox-label" style="line-height: 1.2; padding-right: 0.65em;"><a href="File_format#Magic_number" title="File format">Magic number</a></th><td class="infobox-data" style="line-height: 1.35;">NetWare Loadable Module</td></tr><tr><th scope="row" class="infobox-label" style="line-height: 1.2; padding-right: 0.65em;">Developed&nbsp;by</th><td class="infobox-data" style="line-height: 1.35;"><a href="Novell" title="Novell">Novell</a></td></tr><tr><th scope="row" class="infobox-label" style="line-height: 1.2; padding-right: 0.65em;">Type of format</th><td class="infobox-data" style="line-height: 1.35;"><a href="Executable" title="Executable">Executable</a>, <a href="Shared_library" title="Shared library">Shared library</a></td></tr></tbody></table>
<p>A <b>NetWare Loadable Module</b><sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> (<b>NLM</b>) is a <a href="Loadable_kernel_module" title="Loadable kernel module">loadable kernel module</a> (a <a href="Binary_file" title="Binary file">binary</a> code module) that can be loaded into <a href="Novell_NetWare" class="mw-redirect" title="Novell NetWare">Novell's NetWare</a> operating system. NLMs can implement hardware drivers, server functions (e.g. clustering), applications (e.g. <a href="GroupWise" title="GroupWise">GroupWise</a>), system libraries or utilities.
</p><p>NLMs were supported beginning with the <a href="I386" title="I386">Intel 80386</a>-based <a href="NetWare#NetWare_3.x" title="NetWare">NetWare</a> version 3.x. Prior versions of NetWare had a monolithic <a href="Kernel_(operating_system)" title="Kernel (operating system)">kernel</a>, and significant hardware or functionality changes required re-linking the kernel from object modules.
</p><p>Due to stability issues with early third-party NLMs, they never became popular for server application programming, with few exceptions like <a href="Antivirus_software" title="Antivirus software">antivirus</a> programs, <a href="Backup" title="Backup">backup</a> programs and certain <a href="Database" title="Database">database</a> products.
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Functionality">Functionality</h2></div>
<p>Upon loading, a NLM requests resources, such as memory and process threads, from the NetWare kernel. The NetWare kernel tracks such requests, and can identify memory and other resources assigned to a specific NLM. NLMs may auto-load other NLMs upon which they themselves depend.
</p><p>NLMs may register commands with the NetWare kernel, extending the command vocabulary available at the NetWare console prompt.
</p><p>When properly coded, NLMs can be re-entrant, allowing multiple instances of the same code to be loaded and run.
</p>
<div class="mw-heading mw-heading2"><h2 id="Programming_issues">Programming issues</h2></div>
<p>Initially, Novell published a development toolkit for NLM programming including kernel API documentation and a <a href="C_(programming_language)" title="C (programming language)">C compiler</a> (<a href="Watcom" title="Watcom">Watcom</a>), but third-party support for the NLM executable function was very limited.
</p><p>In early NetWare versions (prior to v4.x), all processes were executed in the <a href="Kernel_(operating_system)" title="Kernel (operating system)">kernel</a> address space, without specific memory protection. It was therefore possible for <a href="Software_bug" title="Software bug">bugs</a> in NLMs to overwrite the kernel's or other NLM's address space and ultimately crash the server — in the mainframe-derived Novell terminology, this was known as an ABEND or <a href="Abnormal_end" class="mw-redirect" title="Abnormal end">ABnormal END</a>.
</p><p>Moreover, NetWare used a non-preemptive, or <a href="Co-operative_multitasking" class="mw-redirect" title="Co-operative multitasking">cooperative</a>, multitasking model, meaning that an NLM was required to yield to the kernel regularly.<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> An NLM executing an <a href="Infinite_loop" title="Infinite loop">infinite loop</a>, for example, could therefore not be stopped.
</p><p>In NetWare v4.x, Novell introduced a limited form of memory protection, which was extended to <i>Protected Address Spaces</i> in NetWare v5.x. Through these mechanisms, properly-coded NLMs can be loaded into their own address space, and mis-behaving NLMs can be prevented from compromising the kernel integrity.
</p>
<div class="mw-heading mw-heading2"><h2 id="Compilers">Compilers</h2></div>
<p>Official compilers that produce NLMs are:
</p>
<ul><li><a href="Watcom_C/C%2B%2B" title="Watcom C/C++">Watcom C/C++ compiler</a> / <a href="Watcom_C/C%2B%2B" title="Watcom C/C++">OpenWatcom</a></li>
<li><a href="Metrowerks" title="Metrowerks">Metrowerks</a> <a href="CodeWarrior" title="CodeWarrior">CodeWarrior</a> for NetWare<sup id="cite_ref-Metrowerks_5-0" class="reference"><a href="#cite_note-Metrowerks-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup></li>
<li>EPC C/C++</li>
<li>Novell NLMLINK.EXE</li></ul>
<p>NLM development is also possible with GNU cc and binutils.<sup id="cite_ref-NLM_Linux_6-0" class="reference"><a href="#cite_note-NLM_Linux-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> More details are available in NetWare Loadable Module Programming HOWTO by Martin Hinner.<sup id="cite_ref-NLM_Howto_7-0" class="reference"><a href="#cite_note-NLM_Howto-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Client-side_NLMs_with_NIOS">Client-side NLMs with NIOS</h2></div>
<p>Announcing it in March 1995,<sup id="cite_ref-Network_World_1995_8-0" class="reference"><a href="#cite_note-Network_World_1995-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-PCMag_1995_9-0" class="reference"><a href="#cite_note-PCMag_1995-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> Novell introduced a new 32-bit DOS/Windows <a href="Personal_NetWare#NetWare_clients_for_DOS" title="Personal NetWare">NetWare</a> client (Client 32 based on ODI32/NIOS)<sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup> in 1996, replacing the former 16-bit client based on <a href="Open_Data-Link_Interface" title="Open Data-Link Interface">ODI</a>/VLM. Its NIOS component (<a href="NetWare_I/O_Subsystem" class="mw-redirect" title="NetWare I/O Subsystem">NetWare I/O Subsystem</a><sup id="cite_ref-Network_World_1995_8-1" class="reference"><a href="#cite_note-Network_World_1995-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-Liebing_1996_11-0" class="reference"><a href="#cite_note-Liebing_1996-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-Hendrick_1996_12-0" class="reference"><a href="#cite_note-Hendrick_1996-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup>) used techniques similar to <a href="DOS_Protected_Mode_Services" title="DOS Protected Mode Services">DPMS</a> to relocate and run NLMs in <a href="Protected_mode" title="Protected mode">protected mode</a> and <a href="Extended_memory" title="Extended memory">extended memory</a> in order to reduce the <a href="Conventional_memory" title="Conventional memory">conventional memory</a> footprint of the client down to 2 to 5&nbsp;KB.<sup id="cite_ref-Paul_1997_NWDOSTIP_13-0" class="reference"><a href="#cite_note-Paul_1997_NWDOSTIP-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-Liebing_1996_11-1" class="reference"><a href="#cite_note-Liebing_1996-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="Virtual_Loadable_Module" class="mw-redirect" title="Virtual Loadable Module">Virtual Loadable Module</a> (VLM)</li></ul>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */


.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}


/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap mw-references-columns"><ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */


.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}


/* end https://en.wikipedia.org/ */
</style><cite id="CITEREFDave_Kearns2006" class="citation news cs1">Dave Kearns (October 3, 2006). <a rel="nofollow" class="external text" href="https://www.computerworld.com/article/2307524/revelation--a-netware-loadable-module-that-s-still-around.html">"Revelation: A NetWare Loadable Module that's still around"</a>. <i><a href="Computerworld" title="Computerworld">Computerworld</a></i>.</cite></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><cite class="citation news cs1"><a rel="nofollow" class="external text" href="https://www.computerworld.com/article/2299449/database-server-choices-for-netware.html">"Database server choices for NetWare"</a>. <i><a href="Computerworld" title="Computerworld">Computerworld</a></i>.</cite></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><cite class="citation news cs1"><a rel="nofollow" class="external text" href="https://www.computerworld.com/article/2569895/hands-on--getting-macs-and-pcs-to-play-well-together.html">"Hands on: Getting Macs and PCs to play well together"</a>. <i><a href="Computerworld" title="Computerworld">Computerworld</a></i>.</cite></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><cite id="CITEREFMark_Foust2001" class="citation book cs1">Mark Foust (2001). <i>NetWare Administration: NetWare 4.0-6.0</i>.</cite></span>
</li>
<li id="cite_note-Metrowerks-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-Metrowerks_5-0">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20090106143416/http://metrowerks.com/">"Metrowerks website"</a>. Archived from <a rel="nofollow" class="external text" href="http://www.metrowerks.com/">the original</a> on January 6, 2009.</cite></span>
</li>
<li id="cite_note-NLM_Linux-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-NLM_Linux_6-0">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://martin.hinner.info/nlm/">"NLM development under Linux"</a>.</cite></span>
</li>
<li id="cite_note-NLM_Howto-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-NLM_Howto_7-0">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://martin.hinner.info/nlm/NLM-HOWTO/NLM-HOWTO.html">"NetWare Loadable Module Programming HOWTO"</a>.</cite></span>
</li>
<li id="cite_note-Network_World_1995-8"><span class="mw-cite-backlink">^ <a href="#cite_ref-Network_World_1995_8-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Network_World_1995_8-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite class="citation journal cs1"><a rel="nofollow" class="external text" href="https://books.google.com/books?id=ShgEAAAAMBAJ&amp;pg=PA141">"Novell to dress up Tuxedo and deliver 32-bit client"</a>. <i><a href="Network_World" class="mw-redirect" title="Network World">Network World</a></i>: 141. March 27, 1995<span class="reference-accessdate">. Retrieved <span class="nowrap">August 18,</span> 2018</span>.</cite></span>
</li>
<li id="cite_note-PCMag_1995-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-PCMag_1995_9-0">^</a></b></span> <span class="reference-text"><cite class="citation journal cs1"><a rel="nofollow" class="external text" href="https://books.google.com/books?id=3jNOHGmrpRkC&amp;pg=PA527">"Network Edition - Cover Story"</a>. <i><a href="PC_Magazine" class="mw-redirect" title="PC Magazine">PC Magazine</a></i>: NE27. October 24, 1995<span class="reference-accessdate">. Retrieved <span class="nowrap">August 18,</span> 2018</span>.</cite></span>
</li>
<li id="cite_note-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-10">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://encyclopedia2.thefreedictionary.com/Netware+Input%2FOutput+Subsystem">"Netware Input/Output Subsystem"</a>.</cite></span>
</li>
<li id="cite_note-Liebing_1996-11"><span class="mw-cite-backlink">^ <a href="#cite_ref-Liebing_1996_11-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Liebing_1996_11-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFLiebing1996" class="citation web cs1">Liebing, Edward A. (May 1, 1996). <a rel="nofollow" class="external text" href="https://support.novell.com/techcenter/articles/ana19960501.html">"NetWare Client 32 for DOS/Windows: Overview of Architecture and Features"</a>. <i>Novell AppNotes</i>. <a href="Novell" title="Novell">Novell</a>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20180818204926/https://support.novell.com/techcenter/articles/ana19960501.html">Archived</a> from the original on August 18, 2018<span class="reference-accessdate">. Retrieved <span class="nowrap">August 18,</span> 2018</span>.</cite></span>
</li>
<li id="cite_note-Hendrick_1996-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-Hendrick_1996_12-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFHendrick1996" class="citation web cs1">Hendrick, Ben (November 1, 1996). <a rel="nofollow" class="external text" href="https://support.novell.com/techcenter/articles/ana19961101.html">"Overview of NetWare Client 32 for Windows 95"</a>. <i>Novell AppNotes</i>. <a href="Novell" title="Novell">Novell</a>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20180818205427/https://support.novell.com/techcenter/articles/ana19961101.html">Archived</a> from the original on August 18, 2018<span class="reference-accessdate">. Retrieved <span class="nowrap">August 18,</span> 2018</span>.</cite></span>
</li>
<li id="cite_note-Paul_1997_NWDOSTIP-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-Paul_1997_NWDOSTIP_13-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFPaul1997" class="citation book cs1 cs1-prop-foreign-lang-source">Paul, Matthias R. (July 30, 1997). <a rel="nofollow" class="external text" href="http://www.antonis.de/dos/dos-tuts/mpdostip/html/nwdostip.htm"><i>NWDOS-TIPs — Tips &amp; Tricks rund um Novell DOS 7, mit Blick auf undokumentierte Details, Bugs und Workarounds</i></a>. Release 157 (in German) (3&nbsp;ed.). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20160522014302/http://www.antonis.de/dos/dos-tuts/mpdostip/html/nwdostip.htm">Archived</a> from the original on May 22, 2016<span class="reference-accessdate">. Retrieved <span class="nowrap">January 11,</span> 2012</span>.</cite> <span class="cs1-visible-error citation-comment"><code class="cs1-code">{{cite book}}</code>: </span><span class="cs1-visible-error citation-comment"><code class="cs1-code">|work=</code> ignored (help)</span> (NB. NWDOSTIP.TXT is a comprehensive work on <a href="Novell_DOS_7" class="mw-redirect" title="Novell DOS 7">Novell DOS 7</a> and <a href="OpenDOS_7.01" class="mw-redirect" title="OpenDOS 7.01">OpenDOS 7.01</a>, including the description of many undocumented features and internals. It is part of the author's yet larger MPDOSTIP.ZIP collection maintained up to 2001 and distributed on many sites at the time. The provided link points to a HTML-converted older version of the NWDOSTIP.TXT file.)</span>
</li>
</ol></div></div>
<div class="mw-heading mw-heading2"><h2 id="Further_reading">Further reading</h2></div>
<ul><li><cite id="CITEREFDavis1991" class="citation book cs1">Davis, Ralph (1991). <i>NetWare 386 Programmer's Guide</i>. <a href="Addison-Wesley" title="Addison-Wesley">Addison-Wesley</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-0-201-57709-9</bdi>.</cite></li>
<li><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20091124201302/http://developer.novell.com/tech/nlm.html">"Novell Developer Documentation: Netware Loadable Module"</a>. Archived from <a rel="nofollow" class="external text" href="http://developer.novell.com/tech/nlm.html">the original</a> on November 24, 2009<span class="reference-accessdate">. Retrieved <span class="nowrap">September 25,</span> 2010</span>.</cite></li></ul></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-03-29" href="https://en.wikipedia.org/wiki/?title=NetWare_Loadable_Module&amp;oldid=1282964125">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>

</body></html>